/*
 * TokenCompartido.h
 *
 *  Created on: 03/08/2014
 *      Author: migue
 */

#ifndef TOKENCOMPARTIDO_H_
#define TOKENCOMPARTIDO_H_

#include "../defines.h"
#include "../ipc/Semaforo.h"
#include "../ipc/MemoriaCompartida.h"


class TokenCompartido {
public:
	TokenCompartido();

	void actualizar(const TOKEN& token);

	void recuperar(TOKEN& token);

	void mostrarEstado();

	static void inicializar();

	static void destruir();


	void pausarBroker();

	void retomarBroker();

	virtual ~TokenCompartido();

private:

	void mostrarSala(SALA *salaEnt, SALA *salaZoo);

	void imprimirLugar(int id);

	Semaforo _mutex;
	MemoriaCompartida _shm;
	TOKEN *_token;
};

#endif /* TOKENCOMPARTIDO_H_ */
